Index: b/gtk/gtkmenu.c
===================================================================
--- a/gtk/gtkmenu.c	2021-06-15 17:58:25.000000000 -0300
+++ b/gtk/gtkmenu.c	2022-08-23 04:02:51.802650885 -0300
@@ -1396,11 +1396,13 @@
                   gboolean            flipped_y,
                   GtkMenu            *menu)
 {
-  GtkMenuPrivate *priv = menu->priv;
-
-  gtk_window_fixate_size (GTK_WINDOW (priv->toplevel));
-
-  if (!priv->emulated_move_to_rect)
+  if (GTK_IS_MENU_ITEM (menu->priv->widget) && GTK_IS_MENU_BAR (gtk_widget_get_parent (menu->priv->widget))
+       && flipped_rect != NULL && final_rect != NULL && !flipped_y && flipped_rect->y > final_rect->y)
+     {
+       gint new_height = final_rect->height - (flipped_rect->y - final_rect->y);
+       if (new_height > 200)
+         gdk_window_move_resize (window, final_rect->x, flipped_rect->y, final_rect->width, new_height);
+     }
     g_signal_emit (menu,
                    menu_signals[POPPED_UP],
                    0,
